package firing;

import game.Bullet;
import game.Enemy;
import game.Player;

import java.util.List;

/** Interface for a node in a decision tree for firing bullets */
public interface Node extends java.io.Serializable {
    /** Performs the action associated with node, then continue down tree */
    public void calculate(List<Bullet> bullets, double angle, Enemy shooter, Player player);
    /** Initializes the node to */
    public void randomizeNode();
    /** creates a deep copy of the node */
    public Node duplicate();
    /** returns true if node is unary */
    public boolean isUnaryNode();
    /** for printing the tree */
    public String printNode(int depth);    
}
